AWS WAF でブロックされたリクエストを確認する方法を教えてください
困っていた内容
ALB(Application Load Balancer)に AWS WAF の WebACL を適用しています。 WAF によってブロックされたリクエストを調査したいのですが、どのようにすれば確認できますか?
どう対応すればいいの?
ALB のアクセスログを確認しましょう。
以下の値が記録されているリクエストは、WAF によりブロックされたと判断できます。
① ~ ③ それぞれの意味について解説します。
① "elb_status_code" が "403"
WAF でブロックされていた場合、ALB のステータスコードは 403(Forbidden)になります。
② "target_status_code" が "-"
WAF でブロックされた場合はターゲット(サーバー)へリクエストが到達しないため、ターゲットのステータスコードは "-" と記録されます。
③ "actions_executed" が "waf"
リクエストが WAF に転送されたものの、通過しなかったことを示しています。
(もし WAF を通過している場合は "waf,forward" と記録されます)
どのリクエストが WAF によってブロックされたのか、一目で分かりますね!
なお、ここで確認できるのは「WAF によってブロックされたか否か」のみとなります。
具体的に「リクエスト内のどの部分が、どの WAF ルールに抵触したか」については、Web ACL 側のログを有効化して確認する必要があります。
この情報がどなたかのお役に立てば幸いです!
参考資料
Application Load Balancer のアクセスログ
ウェブ ACL トラフィックのログ記録 - AWS WAF